我們今天要來介紹判斷式,並寫一個腳本來判斷使用者輸入了什麼東西。
if_[_判斷式_]
then
執行這段內容
elif_[_判斷式_]
then
執行這段內容
else
執行這段內容
fi
概念上就是當判斷式if
爲真,則執行then
底下的程式碼部分。
如果不爲真,就會跳到 elif
的區塊,再不是的話就會跳到 else
去。
然後上面的_
代表空白,在撰寫程式碼時不要真的打出來,這只是提醒要記得留間隔,不然會出錯。
接下來我們來寫一個判斷使用者輸入的程式,是輸入一般字元(不是數字或是字母),還是特殊字元(%,^,*...)
#!/bin/bash
echo -n "請輸入資料(限一般字元):"
read input
chars="$(echo $input | sed -e 's/[^[:alnum:]]//g')"
if [ "$chars" = "$input" ] ; then
valid=1
else
valid=0
fi
if [ "$valid" = "0" ] ; then
echo "還敢亂輸入阿"
exit 1
else
echo "你輸入的是有效資料"
fi
我們使用 read
把使用者的輸入存到 input 變數中。
接下來把 input 輸出,透過管線指令當成 sed 的輸入,透過 sed 我們把不是數字還有英文字母的字元過濾掉,最後的結果存入變數 chars 中。
最後來到了判斷的環節,當原本的數入和處理過的輸入不同,就代表包含不合規範的輸入,方法就是設一個變數 valid,如果是 0 就代表不合規範,反之就是合法輸入。